package cn.lizemin.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;

/**
 * @author lzm
 * @Date 2024/7/27
 * @description 注意事项：每个servlet有自己独立的servlet配置，彼此之间互不影响
 * 这个servletConfig是Tomcat解析web.xml后，自动调用每个servlet的init(ServletConfig config)方法传进来的
 * 类似于spring的aware接口
 */
@WebServlet(urlPatterns = "/servlet4")
public class MyServlet4 extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println(req.getMethod()); // 请求方式
        System.out.println(req.getScheme()); // 请求协议
        System.out.println(req.getProtocol()); // 协议以及版本
        System.out.println(req.getRequestURI()); // 项目内资源路径
        System.out.println(req.getRequestURL()); // 完成的项目地址，带有host和端口号
        System.out.println(req.getLocalPort()); // 端口号
        System.out.println(req.getRemotePort()); // 客户端软件的端口号
        System.out.println(req.getServerPort()); // 客户端发起请求的端口号，客户端可能使用了代理，因此不一定是服务器的端口号

        System.out.println("..........get headers............");
        Enumeration<String> headerNames = req.getHeaderNames();
        while (headerNames.hasMoreElements()) {
            String name = headerNames.nextElement();
            String value = req.getHeader(name);
            System.out.println(name + " = " + value);
        }
    }


}
